package com.itlong.cloud.enumerate;

import lombok.Getter;

/**
 * <desc>
 * 提现状态类型.
 * </desc>
 *
 * @createDate 2018-09-28
 */
public enum TradeStatusEnum {

    IS_COMMIT("已提交",1),
    IS_DOING("处理中",2),
    WITHDRAW_SUCC("提现成功",3),
    WITHDRAW_FAIL("提现失败",4),
    EXAMINE_FAIL("审核失败",5);

    @Getter
    private Integer type;  //提现状态类型

    @Getter
    private String description;  //提现状态类型描述（名称）


    /**
     * <desc>
     * 构造函数.
     * </desc>
     *
     * @param type        提现状态
     * @param description 提现状态类型描述（名称）
     * @author Qiang.S
     * @createDate 2018-09-28
     */
    TradeStatusEnum(String description, Integer type) {
        this.description = description;
        this.type = type;
    }


    /**
     * <desc>
     * 根据提现状态类型获取描述（名称）.
     * </desc>
     *
     * @param type 提现状态类型
     * @return 提现状态类型描述（名称）
     * @author Qiang.S
     * @createDate 2018-09-28
     */
    public static String getDescription(int type) {
        TradeStatusEnum[] types = TradeStatusEnum.values();
        for (TradeStatusEnum limitCategory : types) {
            if (limitCategory.getType() == type) {
                return limitCategory.getDescription();
            }
        }
        return "";
    }


    /**
     * <desc>
     * 根据提现状态类型（名称）获取类型.
     * </desc>
     *
     * @param description 提现状态类型描述（名称）
     * @return 提现状态类型
     * @author Qiang.S
     * @createDate 2018-09-28
     */
    public static Integer getType(String description) {
        TradeStatusEnum[] types = TradeStatusEnum.values();
        for (TradeStatusEnum limitCategory : types) {
            if (limitCategory.getDescription().equalsIgnoreCase(description)) {
                return limitCategory.getType();
            }
        }
        return IS_COMMIT.getType();
    }
}
